package com.bt.lms.ui.page.sys.style;

import com.bt.lms.ui.page.sys.style.action.Lab.PagingExitedAction;
import com.bt.lms.ui.page.sys.style.action.Lab.PagingMouseAction;
import javafx.scene.control.Label;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;

/**
 * 标签的样式方法
 */
public class LabStyle {

    /**
     * 中等大小
     */
    private final static Integer MED_SIZE = 17;

    /**
     * 无用
     */
    public final static Integer USELESS = -1;

    /**
     * 开启
     */
    public final static Integer OPEN = 0;


    /**
     * 进行
     */
    public final static Integer PROCEED = 1;

    /**
     * 等待
     */
    public final static Integer WAIT = 2;


    /**
     * 停止
     */
    public final static Integer STOP = 3;

    /**
     * 状态标签样式
     *
     * @param label   状态标签
     * @param integer 状态
     */
    public static void status(Label label, Integer integer) {

        //判断改变的样式
        switch (integer) {
            case -1:
                uselessStyle(label);
                break;
            case 0:
                openStyle(label);
                break;
            case 1:
                proceedStyle(label);
                break;
            case 2:
                waitStyle(label);
                break;
            case 3:
                stopStyle(label);
                break;
            default:
                break;
        }
    }

    /**
     * 可交互样式
     *
     * @param label 标签
     */
    public static void interaction(Label label) {

        Color rgb = Color.rgb(0, 143, 191);
        label.setTextFill(rgb);
    }

    /**
     * 非重要标签
     *
     * @param label 标签
     */
    public static void notWeight(Label label) {
        label.setOpacity(0.7);
    }

    /**
     * 非重要标签
     *
     * @param label 标签
     * @param d     非重要程度（透明度）
     */
    public static void notWeight(Label label, Double d) {

        if (d > 0 & d < 1)
            label.setOpacity(d);

    }

    /**
     * 分页样式
     *
     * @param label 分页标签
     */
    public static void paging(Label label) {

        //颜色
        Color rgb = Color.rgb(62, 130, 0);
        label.setTextFill(rgb);

    }

    /**
     * 分页标签事件
     *
     * @param label 分页标签
     */
    public static void pagingAction(Label label) {

        //鼠标移入
        PagingMouseAction pagingMouseAction = new PagingMouseAction(label);
        label.setOnMouseMoved(pagingMouseAction);

        //鼠标移出
        PagingExitedAction pagingExitedAction = new PagingExitedAction(label);
        label.setOnMouseExited(pagingExitedAction);

    }

    /**
     * 定位标签样式（大小）
     *
     * @param label 定位标签
     */
    public static void locationSize(Label label) {
        Font font = Font.font("仿宋", FontWeight.LIGHT, MED_SIZE);
        label.setFont(font);
    }

    /**
     * 提示标签样式
     *
     * @param explainLab 标签
     */
    public static void hintLab(Label explainLab) {

        // Color rgb = Color.rgb(204, 0, 0);
        // explainLab.setTextFill(rgb);
        Font font = Font.font("仿宋", FontWeight.BOLD, MED_SIZE);
        explainLab.setFont(font);

    }


    /**
     * 结束状态样式
     *
     * @param label 状态的标签
     */
    private static void stopStyle(Label label) {
        //颜色
        Color rgb = Color.rgb(204, 0, 0);
        label.setTextFill(rgb);
    }

    /**
     * 等待状态样式
     *
     * @param label 状态的标签
     */
    private static void waitStyle(Label label) {
        //颜色
        Color rgb = Color.rgb(230, 181, 0);
        label.setTextFill(rgb);
    }

    /**
     * 进行状态样式
     *
     * @param label 状态的标签
     */
    private static void proceedStyle(Label label) {
        //颜色
        Color rgb = Color.rgb(102, 181, 241);
        label.setTextFill(rgb);
    }

    /**
     * 开始状态样式
     *
     * @param label 状态的标签
     */
    private static void openStyle(Label label) {
        //颜色
        Color rgb = Color.rgb(57, 173, 73);
        label.setTextFill(rgb);
    }

    /**
     * 无用状态样式
     *
     * @param label 状态的标签
     */
    private static void uselessStyle(Label label) {
        //颜色
        Color rgb = Color.rgb(170, 170, 170);
        label.setTextFill(rgb);
    }


}
